home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / Gestalt.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  44.9 KB  |  1,060 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Gestalt.a
  3. ;
  4. ;    Contains:    Gestalt Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1988-1997 by Apple Computer, Inc.  All rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__GESTALT__') = 'UNDEFINED' THEN
  19. __GESTALT__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  25.     include 'MixedMode.a'
  26.     ENDIF
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. ;
  34. ; pascal OSErr Gestalt(OSType selector, long *response)
  35. ;
  36.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  37.         _Gestalt:    OPWORD    $A1AD
  38.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  39.         IMPORT_CFM_FUNCTION Gestalt
  40.     ENDIF
  41.  
  42. ;
  43. ; pascal OSErr ReplaceGestalt(OSType selector, SelectorFunctionUPP gestaltFunction, SelectorFunctionUPP *oldGestaltFunction)
  44. ;
  45.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  46.         _ReplaceGestalt:    OPWORD    $A5AD
  47.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  48.         IMPORT_CFM_FUNCTION ReplaceGestalt
  49.     ENDIF
  50.  
  51. ;
  52. ; pascal OSErr NewGestalt(OSType selector, SelectorFunctionUPP gestaltFunction)
  53. ;
  54.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  55.         ; parameters:
  56.         ;    selector        => D0
  57.         ;    gestaltFunction => A0
  58.         ; returns:
  59.         ;    OSErr           <= D0
  60.         _NewGestalt:    OPWORD    $A3AD
  61.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  62.         IMPORT_CFM_FUNCTION NewGestalt
  63.     ENDIF
  64.  
  65.  
  66. ;      These functions (and SetGestaltValue) are built into System 7.5,
  67. ;      but not on earlier systems
  68.  
  69.  
  70.  
  71. ;
  72. ; pascal OSErr NewGestaltValue(OSType selector, long newValue)
  73. ;
  74.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  75.         Macro
  76.         _NewGestaltValue
  77.             move.w              #$0401,D0
  78.             dc.w                $ABF1
  79.         EndM
  80.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  81.         IMPORT_CFM_FUNCTION NewGestaltValue
  82.     ENDIF
  83.  
  84. ;
  85. ; pascal OSErr ReplaceGestaltValue(OSType selector, long replacementValue)
  86. ;
  87.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  88.         Macro
  89.         _ReplaceGestaltValue
  90.             move.w              #$0402,D0
  91.             dc.w                $ABF1
  92.         EndM
  93.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  94.         IMPORT_CFM_FUNCTION ReplaceGestaltValue
  95.     ENDIF
  96.  
  97. ;
  98. ; pascal OSErr SetGestaltValue(OSType selector, long newValue)
  99. ;
  100.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  101.         Macro
  102.         _SetGestaltValue
  103.             move.w              #$0404,D0
  104.             dc.w                $ABF1
  105.         EndM
  106.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  107.         IMPORT_CFM_FUNCTION SetGestaltValue
  108.     ENDIF
  109.  
  110. ;
  111. ; pascal OSErr DeleteGestaltValue(OSType selector)
  112. ;
  113.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  114.         Macro
  115.         _DeleteGestaltValue
  116.             move.w              #$0203,D0
  117.             dc.w                $ABF1
  118.         EndM
  119.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  120.         IMPORT_CFM_FUNCTION DeleteGestaltValue
  121.     ENDIF
  122.  
  123.  
  124.  
  125. ;  Environment Selectors 
  126.  
  127. gestaltAddressingModeAttr        EQU        'addr'                ; addressing mode attributes 
  128. gestalt32BitAddressing            EQU        0                    ; using 32-bit addressing mode 
  129. gestalt32BitSysZone                EQU        1                    ; 32-bit compatible system zone 
  130. gestalt32BitCapable                EQU        2                    ; Machine is 32-bit capable 
  131.  
  132. gestaltAliasMgrAttr                EQU        'alis'                ; Alias Mgr Attributes 
  133. gestaltAliasMgrPresent            EQU        0                    ; True if the Alias Mgr is present 
  134. gestaltAliasMgrSupportsRemoteAppletalk EQU 1                ; True if the Alias Mgr knows about Remote Appletalk 
  135. gestaltAliasMgrSupportsAOCEKeychain EQU    2                    ; True if the Alias Mgr knows about the AOCE Keychain 
  136.  
  137. gestaltAppleScriptVersion        EQU        'ascv'                ; AppleScript version
  138.  
  139. gestaltAppleScriptAttr            EQU        'ascr'                ; AppleScript attributes
  140. gestaltAppleScriptPresent        EQU        0
  141. gestaltAppleScriptPowerPCSupport EQU    1
  142.  
  143. gestaltATAAttr                    EQU        'ata '                ; ATA is the driver to support IDE hard disks 
  144. gestaltATAPresent                EQU        0                    ; if set, ATA Manager is present 
  145.  
  146. gestaltATalkVersion                EQU        'atkv'                ; Detailed AppleTalk version; see comment above for format 
  147.  
  148. gestaltAppleTalkVersion            EQU        'atlk'                ; appletalk version 
  149. ;    FORMAT OF gestaltATalkVersion RESPONSE
  150. ;    --------------------------------------
  151. ;    The version is stored in the high three bytes of the response value.  Let us number
  152. ;    the bytes in the response value from 0 to 3, where 0 is the least-significant byte.
  153. ;
  154. ;        Byte#:       3 2 1 0
  155. ;        Value:    0xMMNNRR00
  156. ;
  157. ;    Byte 3 (MM) contains the major revision number, byte 2 (NN) contains the minor
  158. ;    revision number, and byte 1 (RR) contains a constant that represents the release
  159. ;    stage.  Byte 0 always contains 0x00.  The constants for the release stages are:
  160. ;
  161. ;        development = 0x20
  162. ;        alpha        = 0x40
  163. ;        beta        = 0x60
  164. ;        final        = 0x80
  165. ;        release        = 0x80
  166. ;
  167. ;    For example, if you call Gestalt with the 'atkv' selector when AppleTalk version 57
  168. ;    is loaded, you receive the long integer response value 0x39008000.
  169. ;
  170.  
  171.  
  172. gestaltAUXVersion                EQU        'a/ux'                ; a/ux version, if present 
  173.  
  174. gestaltBusClkSpeed                EQU        'bclk'                ; main I/O bus clock speed in hertz 
  175.  
  176. gestaltCloseViewAttr            EQU        'BSDa'                ; CloseView attributes 
  177. gestaltCloseViewEnabled            EQU        0                    ; Closeview enabled (dynamic bit - returns current state) 
  178. gestaltCloseViewDisplayMgrFriendly EQU    1                    ; Closeview compatible with Display Manager (FUTURE) 
  179.  
  180. gestaltCFMAttr                    EQU        'cfrg'                ; returns information about the Code Fragment Manager 
  181. gestaltCFMPresent                EQU        0                    ; true if the Code Fragment Manager is present 
  182.  
  183. gestaltCollectionMgrVersion        EQU        'cltn'                ; Collection Manager version 
  184.  
  185. gestaltColorMatchingAttr        EQU        'cmta'                ; ColorSync attributes 
  186. gestaltHighLevelMatching        EQU        0
  187. gestaltColorMatchingLibLoaded    EQU        1
  188.  
  189. gestaltColorMatchingVersion        EQU        'cmtc'
  190. gestaltColorSync10                EQU        $0100                ; 0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product 
  191. gestaltColorSync11                EQU        $0110                ;   0x0100 == low-level matching only 
  192. gestaltColorSync104                EQU        $0104                ; Real version, by popular demand 
  193. gestaltColorSync105                EQU        $0105
  194. gestaltColorSync20                EQU        $0200                ; ColorSync 2.0 
  195.  
  196. gestaltConnMgrAttr                EQU        'conn'                ; connection mgr attributes    
  197. gestaltConnMgrPresent            EQU        0
  198. gestaltConnMgrCMSearchFix        EQU        1                    ; Fix to CMAddSearch?     
  199. gestaltConnMgrErrorString        EQU        2                    ; has CMGetErrorString() 
  200. gestaltConnMgrMultiAsyncIO        EQU        3                    ; CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill 
  201.  
  202. gestaltColorPickerVersion        EQU        'cpkr'                ; returns version of ColorPicker 
  203. gestaltColorPicker                EQU        'cpkr'                ; gestaltColorPicker is old name for gestaltColorPickerVersion 
  204.  
  205. gestaltComponentMgr                EQU        'cpnt'                ; Component Mgr version 
  206. ;    The gestaltNativeCPUtype ('cput') selector can be used to determine the
  207. ;    native CPU type for all Macs running System 7.5 or later.
  208. ;
  209. ;    The 'cput' selector is not available when running System 7.0 (or earlier)
  210. ;    on most 68K machines.  If 'cput' is not available, then the 'proc' selector
  211. ;    should be used to determine the processor type.
  212. ;
  213. ;    An application should always try the 'cput' selector first.  This is because,
  214. ;    on PowerPC machines, the 'proc' selector will reflect the CPU type of the
  215. ;    emulator's "virtual processor" rather than the native CPU type.
  216. ;
  217. ;    The values specified below are accurate.  Prior versions of the Gestalt
  218. ;    interface file contained values that were off by one.
  219. ;
  220. ;    The Quadra 840AV and the Quadra 660AV contain a bug in the ROM code that
  221. ;    causes the 'cput' selector to respond with the value 5.  This behavior
  222. ;    occurs only when running System 7.1.  System 7.5 fixes the bug by replacing
  223. ;    the faulty 'cput' selector function with the correct one.
  224. ;
  225. ;    The gestaltNativeCPUfamily ('cpuf') selector can be used to determine the
  226. ;    general family the native CPU is in. This can be helpful for determing how
  227. ;    blitters and things should be written. In general, it is smarter to use this
  228. ;    selector (when available) than gestaltNativeCPUtype since newer processors
  229. ;    in the same family can be handled without revising your code.
  230. ;
  231. ;    gestaltNativeCPUfamily uses the same results as gestaltNativeCPUtype, but
  232. ;    will only return certain CPU values.
  233. ;
  234.  
  235.  
  236. gestaltNativeCPUtype            EQU        'cput'                ; Native CPU type                                       
  237. gestaltNativeCPUfamily            EQU        'cpuf'                ; Native CPU family                                  
  238. gestaltCPU68000                    EQU        0                    ; Various 68k CPUs...     
  239. gestaltCPU68010                    EQU        1
  240. gestaltCPU68020                    EQU        2
  241. gestaltCPU68030                    EQU        3
  242. gestaltCPU68040                    EQU        4
  243. gestaltCPU601                    EQU        $0101                ; IBM 601                                                 
  244. gestaltCPU603                    EQU        $0103
  245. gestaltCPU604                    EQU        $0104
  246. gestaltCPU603e                    EQU        $0106
  247. gestaltCPU603ev                    EQU        $0107
  248. gestaltCPU604e                    EQU        $0109
  249.  
  250. gestaltCRMAttr                    EQU        'crm '                ; comm resource mgr attributes 
  251. gestaltCRMPresent                EQU        0
  252. gestaltCRMPersistentFix            EQU        1                    ; fix for persistent tools 
  253. gestaltCRMToolRsrcCalls            EQU        2                    ; has CRMGetToolResource/ReleaseToolResource 
  254.  
  255. gestaltControlStripVersion        EQU        'csvr'                ; Control Strip version (was 'sdvr') 
  256.  
  257. gestaltCTBVersion                EQU        'ctbv'                ; CommToolbox version 
  258.  
  259. gestaltDBAccessMgrAttr            EQU        'dbac'                ; Database Access Mgr attributes 
  260. gestaltDBAccessMgrPresent        EQU        0                    ; True if Database Access Mgr present 
  261.  
  262. gestaltSDPFindVersion            EQU        'dfnd'                ; OCE Standard Directory Panel
  263.  
  264. gestaltDictionaryMgrAttr        EQU        'dict'                ; Dictionary Manager attributes 
  265. gestaltDictionaryMgrPresent        EQU        0                    ; Dictionary Manager attributes 
  266.  
  267. gestaltDITLExtAttr                EQU        'ditl'                ; AppenDITL, etc. calls from CTB 
  268. gestaltDITLExtPresent            EQU        0                    ; True if calls are present 
  269. gestaltDITLExtSupportsIctb        EQU        1                    ; True if AppendDITL, ShortenDITL support 'ictb's 
  270.  
  271. gestaltDesktopPicturesAttr        EQU        'dkpx'                ; Desktop Pictures attributes 
  272. gestaltDesktopPicturesInstalled    EQU        0                    ; True if control panel is installed 
  273. gestaltDesktopPicturesDisplayed    EQU        1                    ; True if a picture is currently displayed 
  274.  
  275. gestaltDisplayMgrVers            EQU        'dplv'                ; Display Manager version 
  276.  
  277. gestaltDisplayMgrAttr            EQU        'dply'                ; Display Manager attributes 
  278. gestaltDisplayMgrPresent        EQU        0                    ; True if Display Mgr is present 
  279. gestaltDisplayMgrCanSwitchMirrored EQU    2                    ; True if Display Mgr can switch modes on mirrored displays 
  280. gestaltDisplayMgrSetDepthNotifies EQU    3                    ; True SetDepth generates displays mgr notification 
  281. gestaltDisplayMgrCanConfirm        EQU        4                    ; True Display Manager supports DMConfirmConfiguration 
  282.  
  283. gestaltDragMgrAttr                EQU        'drag'                ; Drag Manager attributes 
  284. gestaltDragMgrPresent            EQU        0                    ; Drag Manager is present 
  285. gestaltDragMgrFloatingWind        EQU        1                    ; Drag Manager supports floating windows 
  286. gestaltPPCDragLibPresent        EQU        2                    ; Drag Manager PPC DragLib is present 
  287. gestaltDragMgrHasImageSupport    EQU        3                    ; Drag Manager allows SetDragImage call 
  288. gestaltCanStartDragInFloatWindow EQU    4                    ; Drag Manager supports starting a drag in a floating window 
  289.  
  290. gestaltDigitalSignatureVersion    EQU        'dsig'                ; returns Digital Signature Toolbox version in low-order word
  291.  
  292. gestaltEasyAccessAttr            EQU        'easy'                ; Easy Access attributes 
  293. gestaltEasyAccessOff            EQU        0                    ; if Easy Access present, but off (no icon) 
  294. gestaltEasyAccessOn                EQU        1                    ; if Easy Access "On" 
  295. gestaltEasyAccessSticky            EQU        2                    ; if Easy Access "Sticky" 
  296. gestaltEasyAccessLocked            EQU        3                    ; if Easy Access "Locked" 
  297.  
  298. gestaltEditionMgrAttr            EQU        'edtn'                ; Edition Mgr attributes 
  299. gestaltEditionMgrPresent        EQU        0                    ; True if Edition Mgr present 
  300. gestaltEditionMgrTranslationAware EQU    1                    ; True if edition manager is translation manager aware 
  301.  
  302. gestaltAppleEventsAttr            EQU        'evnt'                ; Apple Events attributes 
  303. gestaltAppleEventsPresent        EQU        0                    ; True if Apple Events present 
  304. gestaltScriptingSupport            EQU        1
  305. gestaltOSLInSystem                EQU        2                    ; OSL is in system so don’t use the one linked in to app 
  306.  
  307. gestaltFloppyAttr                EQU        'flpy'                ; Floppy disk drive/driver attributes 
  308. gestaltFloppyIsMFMOnly            EQU        0                    ; Floppy driver only supports MFM disk formats 
  309. gestaltFloppyIsManualEject        EQU        1                    ; Floppy drive, driver, and file system are in manual-eject mode 
  310. gestaltFloppyUsesDiskInPlace    EQU        2                    ; Floppy drive must have special DISK-IN-PLACE output; standard DISK-CHANGED not used 
  311.  
  312. gestaltFinderAttr                EQU        'fndr'                ; Finder attributes 
  313. gestaltFinderDropEvent            EQU        0                    ; Finder recognizes drop event 
  314. gestaltFinderMagicPlacement        EQU        1                    ; Finder supports magic icon placement 
  315. gestaltFinderCallsAEProcess        EQU        2                    ; Finder calls AEProcessAppleEvent 
  316. gestaltOSLCompliantFinder        EQU        3                    ; Finder is scriptable and recordable 
  317. gestaltFinderSupports4GBVolumes    EQU        4                    ; Finder correctly handles 4GB volumes 
  318. gestaltFinderHasClippings        EQU        6                    ; Finder supports Drag Manager clipping files 
  319. gestaltFinderFullDragManagerSupport EQU    7                    ; Finder accepts 'hfs ' flavors properly 
  320.  
  321. gestaltFindFolderAttr            EQU        'fold'                ; Folder Mgr attributes 
  322. gestaltFindFolderPresent        EQU        0                    ; True if Folder Mgr present 
  323. gestaltFolderDescSupport        EQU        1                    ; Tru if Folder Mgr has FolderDesc calls 
  324.  
  325.  
  326. gestaltFontMgrAttr                EQU        'font'                ; Font Mgr attributes 
  327. gestaltOutlineFonts                EQU        0                    ; True if Outline Fonts supported 
  328.  
  329. gestaltFPUType                    EQU        'fpu '                ; fpu type 
  330. gestaltNoFPU                    EQU        0                    ; no FPU 
  331. gestalt68881                    EQU        1                    ; 68881 FPU 
  332. gestalt68882                    EQU        2                    ; 68882 FPU 
  333. gestalt68040FPU                    EQU        3                    ; 68040 built-in FPU 
  334.  
  335. gestaltFSAttr                    EQU        'fs  '                ; file system attributes 
  336. gestaltFullExtFSDispatching        EQU        0                    ; has really cool new HFSDispatch dispatcher 
  337. gestaltHasFSSpecCalls            EQU        1                    ; has FSSpec calls 
  338. gestaltHasFileSystemManager        EQU        2                    ; has a file system manager 
  339. gestaltFSMDoesDynamicLoad        EQU        3                    ; file system manager supports dynamic loading 
  340. gestaltFSSupports4GBVols        EQU        4                    ; file system supports 4 gigabyte volumes 
  341. gestaltFSSupports2TBVols        EQU        5                    ; file system supports 2 terabyte volumes 
  342. gestaltHasExtendedDiskInit        EQU        6                    ; has extended Disk Initialization calls 
  343. gestaltDTMgrSupportsFSM            EQU        7                    ; Desktop Manager support FSM-based foreign file systems 
  344.  
  345. gestaltFSMVersion                EQU        'fsm '                ; returns version of HFS External File Systems Manager (FSM) 
  346.  
  347. gestaltFXfrMgrAttr                EQU        'fxfr'                ; file transfer manager attributes 
  348. gestaltFXfrMgrPresent            EQU        0
  349. gestaltFXfrMgrMultiFile            EQU        1                    ; supports FTSend and FTReceive 
  350. gestaltFXfrMgrErrorString        EQU        2                    ; supports FTGetErrorString 
  351. gestaltFXfrMgrAsync                EQU        3                    ;supports FTSendAsync, FTReceiveAsync, FTCompletionAsync
  352.  
  353. gestaltGraphicsAttr                EQU        'gfxa'                ; Quickdraw GX attributes selector 
  354. gestaltGraphicsIsDebugging        EQU        $00000001
  355. gestaltGraphicsIsLoaded            EQU        $00000002
  356. gestaltGraphicsIsPowerPC        EQU        $00000004
  357.  
  358. gestaltGraphicsVersion            EQU        'grfx'                ; Quickdraw GX version selector 
  359. gestaltCurrentGraphicsVersion    EQU        $00010200            ; the version described in this set of headers 
  360.  
  361. gestaltHardwareAttr                EQU        'hdwr'                ; hardware attributes 
  362. gestaltHasVIA1                    EQU        0                    ; VIA1 exists 
  363. gestaltHasVIA2                    EQU        1                    ; VIA2 exists 
  364. gestaltHasASC                    EQU        3                    ; Apple Sound Chip exists 
  365. gestaltHasSCC                    EQU        4                    ; SCC exists 
  366. gestaltHasSCSI                    EQU        7                    ; SCSI exists 
  367. gestaltHasSoftPowerOff            EQU        19                    ; Capable of software power off 
  368. gestaltHasSCSI961                EQU        21                    ; 53C96 SCSI controller on internal bus 
  369. gestaltHasSCSI962                EQU        22                    ; 53C96 SCSI controller on external bus 
  370. gestaltHasUniversalROM            EQU        24                    ; Do we have a Universal ROM? 
  371. gestaltHasEnhancedLtalk            EQU        30                    ; Do we have Enhanced LocalTalk? 
  372.  
  373. gestaltHelpMgrAttr                EQU        'help'                ; Help Mgr Attributes 
  374. gestaltHelpMgrPresent            EQU        0                    ; true if help mgr is present 
  375. gestaltHelpMgrExtensions        EQU        1                    ; true if help mgr extensions are installed 
  376. gestaltAppleGuideIsDebug        EQU        30
  377. gestaltAppleGuidePresent        EQU        31                    ; true if AppleGuide is installed 
  378.  
  379. gestaltHardwareVendorCode        EQU        'hrad'                ; Returns hardware vendor information 
  380. gestaltHardwareVendorApple        EQU        'Appl'                ; Hardware built by Apple 
  381.  
  382. gestaltCompressionMgr            EQU        'icmp'                ; returns version of the Image Compression Manager 
  383.  
  384. gestaltIconUtilitiesAttr        EQU        'icon'                ; Icon Utilities attributes  (Note: available in System 7.0, despite gestalt) 
  385. gestaltIconUtilitiesPresent        EQU        0                    ; true if icon utilities are present 
  386.  
  387. gestaltInternalDisplay            EQU        'idsp'                ; slot number of internal display location 
  388. ;    To obtain information about the connected keyboard(s), one should
  389. ;    use the ADB Manager API.  See Technical Note OV16 for details.
  390. ;
  391.  
  392.  
  393. gestaltKeyboardType                EQU        'kbd '                ; keyboard type 
  394. gestaltMacKbd                    EQU        1
  395. gestaltMacAndPad                EQU        2
  396. gestaltMacPlusKbd                EQU        3
  397. gestaltExtADBKbd                EQU        4
  398. gestaltStdADBKbd                EQU        5
  399. gestaltPrtblADBKbd                EQU        6
  400. gestaltPrtblISOKbd                EQU        7
  401. gestaltStdISOADBKbd                EQU        8
  402. gestaltExtISOADBKbd                EQU        9
  403. gestaltADBKbdII                    EQU        10
  404. gestaltADBISOKbdII                EQU        11
  405. gestaltPwrBookADBKbd            EQU        12
  406. gestaltPwrBookISOADBKbd            EQU        13
  407. gestaltAppleAdjustKeypad        EQU        14
  408. gestaltAppleAdjustADBKbd        EQU        15
  409. gestaltAppleAdjustISOKbd        EQU        16
  410. gestaltJapanAdjustADBKbd        EQU        17                    ; Japan Adjustable Keyboard 
  411. gestaltPwrBkExtISOKbd            EQU        20                    ; PowerBook Extended International Keyboard with function keys 
  412. gestaltPwrBkExtJISKbd            EQU        21                    ; PowerBook Extended Japanese Keyboard with function keys         
  413. gestaltPwrBkExtADBKbd            EQU        24                    ; PowerBook Extended Domestic Keyboard with function keys         
  414. gestaltPS2Keyboard                EQU        27                    ; PS2 keyboard 
  415. gestaltPwrBkSubDomKbd            EQU        28                    ; PowerBook Subnote Domestic Keyboard with function keys w/  inverted T     
  416. gestaltPwrBkSubISOKbd            EQU        29                    ; PowerBook Subnote International Keyboard with function keys w/  inverted T     
  417. gestaltPwrBkSubJISKbd            EQU        30                    ; PowerBook Subnote Japanese Keyboard with function keys w/ inverted T         
  418.  
  419. gestaltLowMemorySize            EQU        'lmem'                ; size of low memory area 
  420.  
  421. gestaltLogicalRAMSize            EQU        'lram'                ; logical ram size 
  422. ;    MACHINE TYPE CONSTANTS NAMING CONVENTION
  423. ;
  424. ;        All future machine type constant names take the following form:
  425. ;
  426. ;            gestalt<lineName><modelNumber>
  427. ;
  428. ;    Line Names
  429. ;
  430. ;        The following table contains the lines currently produced by Apple and the
  431. ;        lineName substrings associated with them:
  432. ;
  433. ;            Line                        lineName
  434. ;            -------------------------    ------------
  435. ;            Macintosh LC                "MacLC"
  436. ;            Macintosh Performa            "Performa"
  437. ;            Macintosh PowerBook            "PowerBook"
  438. ;            Macintosh PowerBook Duo        "PowerBookDuo"
  439. ;            Power Macintosh                "PowerMac"
  440. ;            Apple Workgroup Server        "AWS"
  441. ;
  442. ;        The following table contains lineNames for some discontinued lines:
  443. ;
  444. ;            Line                        lineName
  445. ;            -------------------------    ------------
  446. ;            Macintosh Quadra            "MacQuadra" (preferred)
  447. ;                                        "Quadra" (also used, but not preferred)
  448. ;            Macintosh Centris            "MacCentris"
  449. ;
  450. ;    Model Numbers
  451. ;
  452. ;        The modelNumber is a string representing the specific model of the machine
  453. ;        within its particular line.  For example, for the Power Macintosh 8100/80,
  454. ;        the modelNumber is "8100".
  455. ;
  456. ;        Some Performa & LC model numbers contain variations in the rightmost 1 or 2
  457. ;        digits to indicate different RAM and Hard Disk configurations.  A single
  458. ;        machine type is assigned for all variations of a specific model number.  In
  459. ;        this case, the modelNumber string consists of the constant leftmost part
  460. ;        of the model number with 0s for the variant digits.  For example, the
  461. ;        Performa 6115 and Performa 6116 are both return the same machine type
  462. ;        constant:  gestaltPerforma6100.
  463. ;
  464. ;
  465. ;    OLD NAMING CONVENTIONS
  466. ;
  467. ;    The "Underscore Speed" suffix
  468. ;
  469. ;        In the past, Apple differentiated between machines that had the same model
  470. ;        number but different speeds.  For example, the Power Macintosh 8100/80 and
  471. ;        Power Macintosh 8100/100 return different machine type constants.  This is
  472. ;        why some existing machine type constant names take the form:
  473. ;
  474. ;            gestalt<lineName><modelNumber>_<speed>
  475. ;
  476. ;        e.g.
  477. ;
  478. ;            gestaltPowerMac8100_110
  479. ;            gestaltPowerMac7100_80
  480. ;            gestaltPowerMac7100_66
  481. ;
  482. ;        It is no longer necessary to use the "underscore speed" suffix.  Starting with
  483. ;        the Power Surge machines (Power Macintosh 7200, 7500, 8500 and 9500), speed is
  484. ;        no longer used to differentiate between machine types.  This is why a Power
  485. ;        Macintosh 7200/75 and a Power Macintosh 7200/90 return the same machine type
  486. ;        constant:  gestaltPowerMac7200.
  487. ;
  488. ;    The "Screen Type" suffix
  489. ;
  490. ;        All PowerBook models prior to the PowerBook 190, and all PowerBook Duo models
  491. ;        before the PowerBook Duo 2300 take the form:
  492. ;
  493. ;            gestalt<lineName><modelNumber><screenType>
  494. ;
  495. ;        Where <screenType> is "c" or the empty string.
  496. ;
  497. ;        e.g.
  498. ;
  499. ;            gestaltPowerBook100
  500. ;            gestaltPowerBookDuo280
  501. ;            gestaltPowerBookDuo280c
  502. ;            gestaltPowerBook180
  503. ;            gestaltPowerBook180c
  504. ;
  505. ;        Starting with the PowerBook 190 series and the PowerBook Duo 2300 series, machine
  506. ;        types are no longer differentiated based on screen type.  This is why a PowerBook
  507. ;        5300cs/100 and a PowerBook 5300c/100 both return the same machine type constant:
  508. ;        gestaltPowerBook5300.
  509. ;
  510. ;        Macintosh LC 630                gestaltMacLC630
  511. ;        Macintosh Performa 6200            gestaltPerforma6200
  512. ;        Macintosh Quadra 700            gestaltQuadra700
  513. ;        Macintosh PowerBook 5300        gestaltPowerBook5300
  514. ;        Macintosh PowerBook Duo 2300    gestaltPowerBookDuo2300
  515. ;        Power Macintosh 8500            gestaltPowerMac8500
  516. ;
  517.  
  518.  
  519.  
  520. gestaltMachineType                EQU        'mach'                ; machine type 
  521. gestaltClassic                    EQU        1
  522. gestaltMacXL                    EQU        2
  523. gestaltMac512KE                    EQU        3
  524. gestaltMacPlus                    EQU        4
  525. gestaltMacSE                    EQU        5
  526. gestaltMacII                    EQU        6
  527. gestaltMacIIx                    EQU        7
  528. gestaltMacIIcx                    EQU        8
  529. gestaltMacSE030                    EQU        9
  530. gestaltPortable                    EQU        10
  531. gestaltMacIIci                    EQU        11
  532. gestaltPowerMac8100_120            EQU        12
  533. gestaltMacIIfx                    EQU        13
  534. gestaltMacClassic                EQU        17
  535. gestaltMacIIsi                    EQU        18
  536. gestaltMacLC                    EQU        19
  537. gestaltMacQuadra900                EQU        20
  538. gestaltPowerBook170                EQU        21
  539. gestaltMacQuadra700                EQU        22
  540. gestaltClassicII                EQU        23
  541. gestaltPowerBook100                EQU        24
  542. gestaltPowerBook140                EQU        25
  543. gestaltMacQuadra950                EQU        26
  544. gestaltMacLCIII                    EQU        27
  545. gestaltPerforma450                EQU        27
  546. gestaltPowerBookDuo210            EQU        29
  547. gestaltMacCentris650            EQU        30
  548. gestaltPowerBookDuo230            EQU        32
  549. gestaltPowerBook180                EQU        33
  550. gestaltPowerBook160                EQU        34
  551. gestaltMacQuadra800                EQU        35
  552. gestaltMacQuadra650                EQU        36
  553. gestaltMacLCII                    EQU        37
  554. gestaltPowerBookDuo250            EQU        38
  555. gestaltAWS9150_80                EQU        39
  556. gestaltPowerMac8100_110            EQU        40
  557. gestaltAWS8150_110                EQU        40
  558. gestaltPowerMac5200                EQU        41
  559. gestaltPowerMac5260                EQU        41
  560. gestaltPerforma5300                EQU        41
  561. gestaltPowerMac6200                EQU        42
  562. gestaltPerforma6300                EQU        42
  563. gestaltMacIIvi                    EQU        44
  564. gestaltMacIIvm                    EQU        45
  565. gestaltPerforma600                EQU        45
  566. gestaltPowerMac7100_80            EQU        47
  567. gestaltMacIIvx                    EQU        48
  568. gestaltMacColorClassic            EQU        49
  569. gestaltPerforma250                EQU        49
  570. gestaltPowerBook165c            EQU        50
  571. gestaltMacCentris610            EQU        52
  572. gestaltMacQuadra610                EQU        53
  573. gestaltPowerBook145                EQU        54
  574. gestaltPowerMac8100_100            EQU        55
  575. gestaltMacLC520                    EQU        56
  576. gestaltAWS9150_120                EQU        57
  577. gestaltPowerMac6400                EQU        58
  578. gestaltPerforma6400                EQU        58
  579. gestaltPerforma6360                EQU        58
  580. gestaltMacCentris660AV            EQU        60
  581. gestaltMacQuadra660AV            EQU        60
  582. gestaltPerforma46x                EQU        62
  583. gestaltPowerMac8100_80            EQU        65
  584. gestaltAWS8150_80                EQU        65
  585. gestaltPowerMac9500                EQU        67
  586. gestaltPowerMac9600                EQU        67
  587. gestaltPowerMac7500                EQU        68
  588. gestaltPowerMac7600                EQU        68
  589. gestaltPowerMac8500                EQU        69
  590. gestaltPowerMac8600                EQU        69
  591. gestaltAWS8550                    EQU        69
  592. gestaltPowerBook180c            EQU        71
  593. gestaltPowerBook520                EQU        72
  594. gestaltPowerBook520c            EQU        72
  595. gestaltPowerBook540                EQU        72
  596. gestaltPowerBook540c            EQU        72
  597. gestaltPowerMac5400                EQU        74
  598. gestaltPowerMac6100_60            EQU        75
  599. gestaltAWS6150_60                EQU        75
  600. gestaltPowerBookDuo270c            EQU        77
  601. gestaltMacQuadra840AV            EQU        78
  602. gestaltPerforma550                EQU        80
  603. gestaltPowerBook165                EQU        84
  604. gestaltPowerBook190                EQU        85
  605. gestaltMacTV                    EQU        88
  606. gestaltMacLC475                    EQU        89
  607. gestaltPerforma47x                EQU        89
  608. gestaltMacLC575                    EQU        92
  609. gestaltMacQuadra605                EQU        94
  610. gestaltMacQuadra630                EQU        98
  611. gestaltMacLC580                    EQU        99
  612. gestaltPerforma580                EQU        99
  613. gestaltPowerMac6100_66            EQU        100
  614. gestaltAWS6150_66                EQU        100
  615. gestaltPowerBookDuo280            EQU        102
  616. gestaltPowerBookDuo280c            EQU        103
  617. gestaltPowerMacLC475            EQU        104                    ; Mac LC 475 & PPC Processor Upgrade Card
  618. gestaltPowerMacPerforma47x        EQU        104
  619. gestaltPowerMacLC575            EQU        105                    ; Mac LC 575 & PPC Processor Upgrade Card 
  620. gestaltPowerMacPerforma57x        EQU        105
  621. gestaltPowerMacQuadra630        EQU        106                    ; Quadra 630 & PPC Processor Upgrade Card
  622. gestaltPowerMacLC630            EQU        106                    ; Mac LC 630 & PPC Processor Upgrade Card
  623. gestaltPowerMacPerforma63x        EQU        106                    ; Performa 63x & PPC Processor Upgrade Card
  624. gestaltPowerMac7200                EQU        108
  625. gestaltPowerMac7300                EQU        109
  626. gestaltPowerMac7100_66            EQU        112
  627. gestaltPowerBook150                EQU        115
  628. gestaltPowerMacQuadra700        EQU        116                    ; Quadra 700 & Power PC Upgrade Card
  629. gestaltPowerMacQuadra900        EQU        117                    ; Quadra 900 & Power PC Upgrade Card 
  630. gestaltPowerMacQuadra950        EQU        118                    ; Quadra 950 & Power PC Upgrade Card 
  631. gestaltPowerMacCentris610        EQU        119                    ; Centris 610 & Power PC Upgrade Card 
  632. gestaltPowerMacCentris650        EQU        120                    ; Centris 650 & Power PC Upgrade Card 
  633. gestaltPowerMacQuadra610        EQU        121                    ; Quadra 610 & Power PC Upgrade Card 
  634. gestaltPowerMacQuadra650        EQU        122                    ; Quadra 650 & Power PC Upgrade Card 
  635. gestaltPowerMacQuadra800        EQU        123                    ; Quadra 800 & Power PC Upgrade Card 
  636. gestaltPowerBookDuo2300            EQU        124
  637. gestaltPowerBook500PPCUpgrade    EQU        126
  638. gestaltPowerBook5300            EQU        128
  639. gestaltPowerBook1400            EQU        310
  640. gestaltPowerBook3400            EQU        306
  641. gestaltPowerBook2400            EQU        307
  642. gestaltPowerMac5500                EQU        512
  643. gestaltPowerMac6500                EQU        513
  644. gestaltPowerMac4400                EQU        515
  645.  
  646.  
  647. gestaltQuadra605                EQU        94
  648. gestaltQuadra610                EQU        53
  649. gestaltQuadra630                EQU        98
  650. gestaltQuadra650                EQU        36
  651. gestaltQuadra660AV                EQU        60
  652. gestaltQuadra700                EQU        22
  653. gestaltQuadra800                EQU        35
  654. gestaltQuadra840AV                EQU        78
  655. gestaltQuadra900                EQU        20
  656. gestaltQuadra950                EQU        26
  657.  
  658. kMachineNameStrID                EQU        -16395
  659.  
  660. gestaltSMPMailerVersion            EQU        'malr'                ; OCE StandardMail
  661.  
  662. gestaltMessageMgrVersion        EQU        'mess'                ; GX Printing Message Manager Gestalt Selector 
  663.  
  664. gestaltMachineIcon                EQU        'micn'                ; machine icon 
  665.  
  666. gestaltMiscAttr                    EQU        'misc'                ; miscellaneous attributes 
  667. gestaltScrollingThrottle        EQU        0                    ; true if scrolling throttle on 
  668. gestaltSquareMenuBar            EQU        2                    ; true if menu bar is square 
  669.  
  670. ;    The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
  671. ;    The same selector has been renamed gestaltMixedModeAttr to properly reflect the
  672. ;    Inside Mac: PowerPC System Software documentation.  The gestaltMixedModeVersion
  673. ;    symbol has been preserved only for backwards compatibility.
  674. ;
  675. ;    Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
  676. ;    will be removed in a future release of the Interfaces.
  677. ;
  678. ;    For the first version of Mixed Mode, both meanings of the 'mixd' selector are
  679. ;    functionally identical.  They both return 0x00000001.  In subsequent versions
  680. ;    of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
  681. ;    version number, but rather, with 32 attribute bits with various meanings.
  682. ;
  683.  
  684.  
  685. gestaltMixedModeVersion            EQU        'mixd'                ; returns version of Mixed Mode 
  686.  
  687. gestaltMixedModeAttr            EQU        'mixd'                ; returns Mixed Mode attributes 
  688. gestaltMixedModePowerPC            EQU        0                    ; true if Mixed Mode supports PowerPC ABI calling conventions 
  689. gestaltPowerPCAware                EQU        0                    ; old name for gestaltMixedModePowerPC 
  690. gestaltMixedModeCFM68K            EQU        1                    ; true if Mixed Mode supports CFM-68K calling conventions 
  691. gestaltMixedModeCFM68KHasTrap    EQU        2                    ; true if CFM-68K Mixed Mode implements _MixedModeDispatch (versions 1.0.1 and prior did not) 
  692. gestaltMixedModeCFM68KHasState    EQU        3                    ; true if CFM-68K Mixed Mode exports Save/RestoreMixedModeState 
  693.  
  694. gestaltQuickTimeConferencing    EQU        'mtlk'                ; returns QuickTime Conferencing version 
  695.  
  696. gestaltMemoryMapAttr            EQU        'mmap'                ; Memory map type 
  697. gestaltMemoryMapSparse            EQU        0                    ; Sparse memory is on 
  698.  
  699. gestaltMMUType                    EQU        'mmu '                ; mmu type 
  700. gestaltNoMMU                    EQU        0                    ; no MMU 
  701. gestaltAMU                        EQU        1                    ; address management unit 
  702. gestalt68851                    EQU        2                    ; 68851 PMMU 
  703. gestalt68030MMU                    EQU        3                    ; 68030 built-in MMU 
  704. gestalt68040MMU                    EQU        4                    ; 68040 built-in MMU 
  705. gestaltEMMU1                    EQU        5                    ; Emulated MMU type 1  
  706.  
  707. gestaltStdNBPAttr                EQU        'nlup'                ; standard nbp attributes 
  708. gestaltStdNBPPresent            EQU        0
  709. gestaltStdNBPSupportsAutoPosition EQU    1                    ; StandardNBP takes (-1,-1) to mean alert position main screen 
  710.  
  711. gestaltNotificationMgrAttr        EQU        'nmgr'                ; notification manager attributes 
  712. gestaltNotificationPresent        EQU        0                    ; notification manager exists 
  713.  
  714. gestaltNameRegistryVersion        EQU        'nreg'                ; NameRegistryLib version number, for System 7.5.2+ usage 
  715.  
  716. gestaltNuBusSlotCount            EQU        'nubs'                ; count of logical NuBus slots present 
  717.  
  718. gestaltOCEToolboxVersion        EQU        'ocet'                ; OCE Toolbox version 
  719. gestaltOCETB                    EQU        $0102                ; OCE Toolbox version 1.02 
  720. gestaltSFServer                    EQU        $0100                ; S&F Server version 1.0 
  721.  
  722. gestaltOCEToolboxAttr            EQU        'oceu'                ; OCE Toolbox attributes 
  723. gestaltOCETBPresent                EQU        $01                    ; OCE toolbox is present, not running 
  724. gestaltOCETBAvailable            EQU        $02                    ; OCE toolbox is running and available 
  725. gestaltOCESFServerAvailable        EQU        $04                    ; S&F Server is running and available 
  726. gestaltOCETBNativeGlueAvailable    EQU        $10                    ; Native PowerPC Glue routines are availible 
  727.  
  728. gestaltOpenFirmwareInfo            EQU        'opfw'                ; Open Firmware info 
  729.  
  730. gestaltOSAttr                    EQU        'os  '                ; o/s attributes 
  731. gestaltSysZoneGrowable            EQU        0                    ; system heap is growable 
  732. gestaltLaunchCanReturn            EQU        1                    ; can return from launch 
  733. gestaltLaunchFullFileSpec        EQU        2                    ; can launch from full file spec 
  734. gestaltLaunchControl            EQU        3                    ; launch control support available 
  735. gestaltTempMemSupport            EQU        4                    ; temp memory support 
  736. gestaltRealTempMemory            EQU        5                    ; temp memory handles are real 
  737. gestaltTempMemTracked            EQU        6                    ; temporary memory handles are tracked 
  738. gestaltIPCSupport                EQU        7                    ; IPC support is present 
  739. gestaltSysDebuggerSupport        EQU        8                    ; system debugger support is present 
  740.  
  741. gestaltOSTable                    EQU        'ostt'                ;  OS trap table base  
  742.  
  743. gestaltPCCard                    EQU        'pccd'                ;    PC Card attributes
  744. gestaltCardServicesPresent        EQU        0                    ;    PC Card 2.0 (68K) API is present
  745. gestaltPCCardFamilyPresent        EQU        1                    ;    PC Card 3.x (PowerPC) API is present
  746. gestaltPCCardHasPowerControl    EQU        2                    ;    PCCardSetPowerLevel is supported
  747. gestaltPCCardSupportsCardBus    EQU        3                    ;    CardBus is supported
  748.  
  749. gestaltProcClkSpeed                EQU        'pclk'                ; processor clock speed in hertz 
  750.  
  751. gestaltPCXAttr                    EQU        'pcxg'                ; PC Exchange attributes 
  752. gestaltPCXHas8and16BitFAT        EQU        0                    ; PC Exchange supports both 8 and 16 bit FATs 
  753. gestaltPCXHasProDOS                EQU        1                    ; PC Exchange supports ProDOS 
  754.  
  755. gestaltLogicalPageSize            EQU        'pgsz'                ; logical page size 
  756. ;     System 7.6 and later.  If gestaltScreenCaptureMain is not implemented,
  757. ;    PictWhap proceeds with screen capture in the usual way.
  758. ;
  759. ;    The high word of gestaltScreenCaptureMain is reserved (use 0).
  760. ;
  761. ;    To disable screen capture to disk, put zero in the low word.  To
  762. ;    specify a folder for captured pictures, put the vRefNum in the
  763. ;    low word of gestaltScreenCaptureMain, and put the directory ID in
  764. ;    gestaltScreenCaptureDir.
  765. ;
  766.  
  767.  
  768. gestaltScreenCaptureMain        EQU        'pic1'                ; Zero, or vRefNum of disk to hold picture 
  769. gestaltScreenCaptureDir            EQU        'pic2'                ; Directory ID of folder to hold picture 
  770.  
  771. gestaltGXPrintingMgrVersion        EQU        'pmgr'                ; QuickDraw GX Printing Manager Version
  772.  
  773. gestaltPopupAttr                EQU        'pop!'                ; popup cdef attributes 
  774. gestaltPopupPresent                EQU        0
  775.  
  776. gestaltPowerMgrAttr                EQU        'powr'                ; power manager attributes 
  777. gestaltPMgrExists                EQU        0
  778. gestaltPMgrCPUIdle                EQU        1
  779. gestaltPMgrSCC                    EQU        2
  780. gestaltPMgrSound                EQU        3
  781. gestaltPMgrDispatchExists        EQU        4
  782. gestaltPMgrSupportsAVPowerStateAtSleepWake EQU 5
  783. ; * PPC will return the combination of following bit fields.
  784. ; * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
  785. ; * indicates PPC is cuurently is only supports real time delivery
  786. ; * and both incoming and outgoing network sessions are allowed.
  787. ; * By default local real time delivery is supported as long as PPCInit has been called.
  788.  
  789.  
  790. gestaltPPCToolboxAttr            EQU        'ppc '                ; PPC toolbox attributes 
  791. gestaltPPCToolboxPresent        EQU        $0000                ; PPC Toolbox is present  Requires PPCInit to be called 
  792. gestaltPPCSupportsRealTime        EQU        $1000                ; PPC Supports real-time delivery 
  793. gestaltPPCSupportsIncoming        EQU        $0001                ; PPC will deny incoming network requests 
  794. gestaltPPCSupportsOutGoing        EQU        $0002                ; PPC will deny outgoing network requests 
  795.  
  796. gestaltProcessorType            EQU        'proc'                ; processor type 
  797. gestalt68000                    EQU        1
  798. gestalt68010                    EQU        2
  799. gestalt68020                    EQU        3
  800. gestalt68030                    EQU        4
  801. gestalt68040                    EQU        5
  802.  
  803. gestaltSDPPromptVersion            EQU        'prpv'                ; OCE Standard Directory Panel
  804.  
  805. gestaltParityAttr                EQU        'prty'                ; parity attributes 
  806. gestaltHasParityCapability        EQU        0                    ; has ability to check parity 
  807. gestaltParityEnabled            EQU        1                    ; parity checking enabled 
  808.  
  809. gestaltQD3DVersion                EQU        'q3v '                ; Quickdraw 3D version in pack BCD
  810.  
  811. gestaltQuickdrawVersion            EQU        'qd  '                ; quickdraw version 
  812. gestaltOriginalQD                EQU        $0000                ; original 1-bit QD 
  813. gestalt8BitQD                    EQU        $0100                ; 8-bit color QD 
  814. gestalt32BitQD                    EQU        $0200                ; 32-bit color QD 
  815. gestalt32BitQD11                EQU        $0201                ; 32-bit color QDv1.1 
  816. gestalt32BitQD12                EQU        $0220                ; 32-bit color QDv1.2 
  817. gestalt32BitQD13                EQU        $0230                ; 32-bit color QDv1.3 
  818.  
  819. gestaltQD3D                        EQU        'qd3d'                ; Quickdraw 3D attributes
  820. gestaltQD3DPresent                EQU        0                    ; bit 0 set if QD3D available
  821.     IF OLDROUTINENAMES THEN
  822.  
  823. gestaltQD3DNotPresent            EQU        $00
  824. gestaltQD3DAvailable            EQU        $01
  825.     ENDIF    ; OLDROUTINENAMES
  826.  
  827. gestaltGXVersion                EQU        'qdgx'                ; Overall QuickDraw GX Version
  828.  
  829. gestaltQuickdrawFeatures        EQU        'qdrw'                ; quickdraw features 
  830. gestaltHasColor                    EQU        0                    ; color quickdraw present 
  831. gestaltHasDeepGWorlds            EQU        1                    ; GWorlds can be deeper than 1-bit 
  832. gestaltHasDirectPixMaps            EQU        2                    ; PixMaps can be direct (16 or 32 bit) 
  833. gestaltHasGrayishTextOr            EQU        3                    ; supports text mode grayishTextOr 
  834. gestaltSupportsMirroring        EQU        4                    ; Supports video mirroring via the Display Manager. 
  835.  
  836. gestaltQuickTimeConferencingInfo EQU    'qtci'                ; returns pointer to QuickTime Conferencing information 
  837.  
  838. gestaltQuickTimeVersion            EQU        'qtim'                ; returns version of QuickTime 
  839. gestaltQuickTime                EQU        'qtim'                ; gestaltQuickTime is old name for gestaltQuickTimeVersion 
  840.  
  841. gestaltQuickTimeFeatures        EQU        'qtrs'
  842. gestaltPPCQuickTimeLibPresent    EQU        0                    ; PowerPC QuickTime glue library is present 
  843.  
  844. gestaltQTVRMgrAttr                EQU        'qtvr'                ; QuickTime VR attributes                               
  845. gestaltQTVRMgrPresent            EQU        0                    ; QTVR API is present                                   
  846. gestaltQTVRObjMoviesPresent        EQU        1                    ; QTVR runtime knows about object movies                
  847. gestaltQTVRCylinderPanosPresent    EQU        2                    ; QTVR runtime knows about cylindrical panoramic movies 
  848.  
  849. gestaltQTVRMgrVers                EQU        'qtvv'                ; QuickTime VR version                                  
  850.  
  851. gestaltPhysicalRAMSize            EQU        'ram '                ; physical RAM size 
  852.  
  853. gestaltRBVAddr                    EQU        'rbv '                ; RBV base address  
  854.  
  855. gestaltROMSize                    EQU        'rom '                ; rom size 
  856.  
  857. gestaltROMVersion                EQU        'romv'                ; rom version 
  858.  
  859. gestaltResourceMgrAttr            EQU        'rsrc'                ; Resource Mgr attributes 
  860. gestaltPartialRsrcs                EQU        0                    ; True if partial resources exist 
  861.  
  862. gestaltRealtimeMgrAttr            EQU        'rtmr'                ; Realtime manager attributes            
  863. gestaltRealtimeMgrPresent        EQU        0                    ; true if the Realtime manager is present     
  864.  
  865. gestaltSCCReadAddr                EQU        'sccr'                ; scc read base address  
  866.  
  867. gestaltSCCWriteAddr                EQU        'sccw'                ; scc read base address  
  868.  
  869. gestaltScrapMgrAttr                EQU        'scra'                ; Scrap Manager attributes 
  870. gestaltScrapMgrTranslationAware    EQU        0                    ; True if scrap manager is translation aware 
  871.  
  872. gestaltScriptMgrVersion            EQU        'scri'                ; Script Manager version number     
  873.  
  874. gestaltScriptCount                EQU        'scr#'                ; number of active script systems   
  875.  
  876. gestaltSCSI                        EQU        'scsi'                ; SCSI Manager attributes 
  877. gestaltAsyncSCSI                EQU        0                    ; Supports Asynchronous SCSI 
  878. gestaltAsyncSCSIINROM            EQU        1                    ; Async scsi is in ROM (available for booting) 
  879. gestaltSCSISlotBoot                EQU        2                    ; ROM supports Slot-style PRAM for SCSI boots (PDM and later) 
  880.  
  881. gestaltControlStripAttr            EQU        'sdev'                ; Control Strip attributes 
  882. gestaltControlStripExists        EQU        0                    ; Control Strip is installed 
  883. gestaltControlStripVersionFixed    EQU        1                    ; Control Strip version Gestalt selector was fixed 
  884. gestaltControlStripUserFont        EQU        2                    ; supports user-selectable font/size 
  885. gestaltControlStripUserHotKey    EQU        3                    ; support user-selectable hot key to show/hide the window 
  886.  
  887. gestaltSDPStandardDirectoryVersion EQU    'sdvr'                ; OCE Standard Directory Panel
  888.  
  889. gestaltSerialAttr                EQU        'ser '                ; Serial attributes 
  890. gestaltHasGPIaToDCDa            EQU        0                    ; GPIa connected to DCDa
  891. gestaltHasGPIaToRTxCa            EQU        1                    ; GPIa connected to RTxCa clock input
  892. gestaltHasGPIbToDCDb            EQU        2                    ; GPIb connected to DCDb 
  893.  
  894. gestaltShutdownAttributes        EQU        'shut'                ; ShutDown Manager Attributes 
  895. gestaltShutdownHassdOnBootVolUnmount EQU 0                    ; True if ShutDown Manager unmounts boot & VM volume at shutdown time. 
  896.  
  897. gestaltNuBusConnectors            EQU        'sltc'                ; bitmap of NuBus connectors
  898.  
  899. gestaltSlotAttr                    EQU        'slot'                ; slot attributes  
  900. gestaltSlotMgrExists            EQU        0                    ; true is slot mgr exists  
  901. gestaltNuBusPresent                EQU        1                    ; NuBus slots are present  
  902. gestaltSESlotPresent            EQU        2                    ; SE PDS slot present  
  903. gestaltSE30SlotPresent            EQU        3                    ; SE/30 slot present  
  904. gestaltPortableSlotPresent        EQU        4                    ; Portable’s slot present  
  905.  
  906. gestaltFirstSlotNumber            EQU        'slt1'                ; returns first physical slot 
  907.  
  908. gestaltSoundAttr                EQU        'snd '                ; sound attributes 
  909. gestaltStereoCapability            EQU        0                    ; sound hardware has stereo capability 
  910. gestaltStereoMixing                EQU        1                    ; stereo mixing on external speaker 
  911. gestaltSoundIOMgrPresent        EQU        3                    ; The Sound I/O Manager is present 
  912. gestaltBuiltInSoundInput        EQU        4                    ; built-in Sound Input hardware is present 
  913. gestaltHasSoundInputDevice        EQU        5                    ; Sound Input device available 
  914. gestaltPlayAndRecord            EQU        6                    ; built-in hardware can play and record simultaneously 
  915. gestalt16BitSoundIO                EQU        7                    ; sound hardware can play and record 16-bit samples 
  916. gestaltStereoInput                EQU        8                    ; sound hardware can record stereo 
  917. gestaltLineLevelInput            EQU        9                    ; sound input port requires line level 
  918.                                                             ; the following bits are not defined prior to Sound Mgr 3.0 
  919. gestaltSndPlayDoubleBuffer        EQU        10                    ; SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later 
  920. gestaltMultiChannels            EQU        11                    ; multiple channel support, set by Sound Mgr 3.0 and later 
  921. gestalt16BitAudioSupport        EQU        12                    ; 16 bit audio data supported, set by Sound Mgr 3.0 and later 
  922.  
  923. gestaltSMPSPSendLetterVersion    EQU        'spsl'                ; OCE StandardMail
  924.  
  925. gestaltSpeechRecognitionAttr    EQU        'srta'                ; speech recognition attributes 
  926. gestaltDesktopSpeechRecognition    EQU        1                    ; recognition thru the desktop microphone is available 
  927. gestaltTelephoneSpeechRecognition EQU    2                    ; recognition thru the telephone is available 
  928.  
  929. gestaltSpeechRecognitionVersion    EQU        'srtb'                ; speech recognition version (0x0150 is the first version that fully supports the API) 
  930.  
  931. gestaltSoftwareVendorCode        EQU        'srad'                ; Returns system software vendor information 
  932. gestaltSoftwareVendorApple        EQU        'Appl'                ; System software sold by Apple 
  933. gestaltSoftwareVendorLicensee    EQU        'Lcns'                ; System software sold by licensee 
  934.  
  935. gestaltStandardFileAttr            EQU        'stdf'                ; Standard File attributes 
  936. gestaltStandardFile58            EQU        0                    ; True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported 
  937. gestaltStandardFileTranslationAware EQU    1                    ; True if standard file is translation manager aware 
  938. gestaltStandardFileHasColorIcons EQU    2                    ; True if standard file has 16x16 color icons 
  939. gestaltStandardFileUseGenericIcons EQU    3                    ; Standard file LDEF to use only the system generic icons if true 
  940. gestaltStandardFileHasDynamicVolumeAllocation EQU 4            ; True if standard file supports more than 20 volumes 
  941.  
  942. gestaltSysArchitecture            EQU        'sysa'                ; Native System Architecture 
  943. gestalt68k                        EQU        1                    ; Motorola MC68k architecture 
  944. gestaltPowerPC                    EQU        2                    ; IBM PowerPC architecture 
  945.  
  946. gestaltSystemUpdateVersion        EQU        'sysu'                ; System Update version 
  947.  
  948. gestaltSystemVersion            EQU        'sysv'                ; system version
  949.  
  950. gestaltToolboxTable                EQU        'tbtt'                ;  OS trap table base  
  951.  
  952. gestaltTextEditVersion            EQU        'te  '                ; TextEdit version number 
  953. gestaltTE1                        EQU        1                    ; TextEdit in MacIIci ROM 
  954. gestaltTE2                        EQU        2                    ; TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) 
  955. gestaltTE3                        EQU        3                    ; TextEdit with 6.0.4 Script Systems all but MacIIci 
  956. gestaltTE4                        EQU        4                    ; TextEdit in System 7.0 
  957. gestaltTE5                        EQU        5                    ; TextWidthHook available in TextEdit 
  958.  
  959. gestaltTEAttr                    EQU        'teat'                ; TextEdit attributes 
  960. gestaltTEHasGetHiliteRgn        EQU        0                    ; TextEdit has TEGetHiliteRgn 
  961. gestaltTESupportsInlineInput    EQU        1                    ; TextEdit does Inline Input 
  962. gestaltTESupportsTextObjects    EQU        2                    ; TextEdit does Text Objects 
  963.  
  964. gestaltTeleMgrAttr                EQU        'tele'                ; Telephone manager attributes 
  965. gestaltTeleMgrPresent            EQU        0
  966. gestaltTeleMgrPowerPCSupport    EQU        1
  967. gestaltTeleMgrSoundStreams        EQU        2
  968. gestaltTeleMgrAutoAnswer        EQU        3
  969. gestaltTeleMgrIndHandset        EQU        4
  970. gestaltTeleMgrSilenceDetect        EQU        5
  971. gestaltTeleMgrNewTELNewSupport    EQU        6
  972.  
  973. gestaltTermMgrAttr                EQU        'term'                ; terminal mgr attributes 
  974. gestaltTermMgrPresent            EQU        0
  975. gestaltTermMgrErrorString        EQU        2
  976.  
  977. gestaltThreadMgrAttr            EQU        'thds'                ; Thread Manager attributes 
  978. gestaltThreadMgrPresent            EQU        0                    ; bit true if Thread Mgr is present 
  979. gestaltSpecificMatchSupport        EQU        1                    ; bit true if Thread Mgr supports exact match creation option 
  980. gestaltThreadsLibraryPresent    EQU        2                    ; bit true if Thread Mgr shared library is present 
  981.  
  982. gestaltTimeMgrVersion            EQU        'tmgr'                ; time mgr version 
  983. gestaltStandardTimeMgr            EQU        1                    ; standard time mgr is present 
  984. gestaltRevisedTimeMgr            EQU        2                    ; revised time mgr is present 
  985. gestaltExtendedTimeMgr            EQU        3                    ; extended time mgr is present 
  986.  
  987. gestaltTSMTEVersion                EQU        'tmTV'
  988. gestaltTSMTE1                    EQU        $0100
  989. gestaltTSMTE15                    EQU        $0150
  990. gestaltTSMTE2                    EQU        $0200
  991.  
  992. gestaltTSMTEAttr                EQU        'tmTE'
  993. gestaltTSMTEPresent                EQU        0
  994. gestaltTSMTE                    EQU        0                    ; gestaltTSMTE is old name for gestaltTSMTEPresent 
  995.  
  996. gestaltALMAttr                    EQU        'trip'                ; Apple Location Manager attributes (see also gestaltALMVers) 
  997. gestaltALMPresent                EQU        0                    ; bit true if ALM is available 
  998. gestaltALMHasSFLocation            EQU        1                    ; bit true if Put/Get/Merge Location calls are implmented 
  999. gestaltALMHasCFMSupport            EQU        2                    ; bit true if CFM-based modules are supported 
  1000. gestaltALMHasRescanNotifiers    EQU        3                    ; bit true if Rescan notifications/events will be sent to clients 
  1001.  
  1002. gestaltTSMgrVersion                EQU        'tsmv'                ; Text Services Mgr version, if present 
  1003. gestaltTSMgr15                    EQU        $0150
  1004. gestaltTSMgr2                    EQU        $0200
  1005.  
  1006. gestaltTSMgrAttr                EQU        'tsma'                ; Text Services Mgr attributes, if present 
  1007. gestaltTSMDisplayMgrAwareBit    EQU        0                    ; TSM knows about display manager 
  1008. gestaltTSMdoesTSMTEBit            EQU        1                    ; TSM has integrated TSMTE 
  1009.  
  1010. gestaltSpeechAttr                EQU        'ttsc'                ; Speech Manager attributes 
  1011. gestaltSpeechMgrPresent            EQU        0                    ; bit set indicates that Speech Manager exists 
  1012. gestaltSpeechHasPPCGlue            EQU        1                    ; bit set indicates that native PPC glue for Speech Manager API exists 
  1013.  
  1014. gestaltTVAttr                    EQU        'tv  '                ; TV version 
  1015. gestaltHasTVTuner                EQU        0                    ; supports Philips FL1236F video tuner 
  1016. gestaltHasSoundFader            EQU        1                    ; supports Philips TEA6330 Sound Fader chip 
  1017. gestaltHasHWClosedCaptioning    EQU        2                    ; supports Philips SAA5252 Closed Captioning 
  1018. gestaltHasIRRemote                EQU        3                    ; supports CyclopsII Infra Red Remote control 
  1019. gestaltHasVidDecoderScaler        EQU        4                    ; supports Philips SAA7194 Video Decoder/Scaler 
  1020. gestaltHasStereoDecoder            EQU        5                    ; supports Sony SBX1637A-01 stereo decoder 
  1021. gestaltHasSerialFader            EQU        6                    ; has fader audio in serial with system audio 
  1022. gestaltHasFMTuner                EQU        7                    ; has FM Tuner from donnybrook card 
  1023. gestaltHasSystemIRFunction        EQU        8                    ; Infra Red button function is set up by system and not by Video Startup 
  1024. gestaltIRDisabled                EQU        9                    ; Infra Red remote is not disabled. 
  1025. gestaltINeedIRPowerOffConfirm    EQU        10                    ; Need IR power off confirm dialog. 
  1026. gestaltHasZoomedVideo            EQU        11                    ; Has Zoomed Video PC Card video input. 
  1027.  
  1028.  
  1029. gestaltVersion                    EQU        'vers'                ; gestalt version 
  1030. gestaltValueImplementedVers        EQU        5                    ; version of gestalt where gestaltValue is implemented. 
  1031.  
  1032. gestaltVIA1Addr                    EQU        'via1'                ; via 1 base address  
  1033.  
  1034. gestaltVIA2Addr                    EQU        'via2'                ; via 2 base address  
  1035.  
  1036. gestaltVMAttr                    EQU        'vm  '                ; virtual memory attributes 
  1037. gestaltVMPresent                EQU        0                    ; true if virtual memory is present 
  1038. gestaltVMHasLockMemoryForOutput    EQU        1                    ; true if LockMemoryForOutput is available 
  1039. gestaltVMFilemappingOn            EQU        3                    ; true if filemapping is available 
  1040.  
  1041. gestaltALMVers                    EQU        'walk'                ; Apple Location Manager version (see also gestaltALMAttr) 
  1042.  
  1043. gestaltTranslationAttr            EQU        'xlat'                ; Translation Manager attributes 
  1044. gestaltTranslationMgrExists        EQU        0                    ; True if translation manager exists 
  1045. gestaltTranslationMgrHintOrder    EQU        1                    ; True if hint order reversal in effect 
  1046. gestaltTranslationPPCAvail        EQU        2
  1047. gestaltTranslationGetPathAPIAvail EQU    3
  1048.  
  1049. gestaltExtToolboxTable            EQU        'xttt'                ; Extended Toolbox trap table base 
  1050.  
  1051.  
  1052.     ENDIF ; __GESTALT__ 
  1053.  
  1054.